/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.clebersantos.dao;

import br.com.clebersantos.pojos.Produto;
import br.com.clebersantos.util.HibernateUtil;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Projections;

/**
 *
 * @author Jurema
 */
public class ProdutoDAO implements Serializable {

    Produto prod;
    Session sessao;
    Transaction tx;

    public boolean cadastrarProduto(Produto p) {

        try {
            prod = new Produto();
            sessao = HibernateUtil.getSessionFactory().openSession();
            tx = sessao.beginTransaction();

            prod.setEstoque(p.getEstoque());
            prod.setEstoqueMinimo(p.getEstoqueMinimo());
            prod.setNome(p.getNome());
            prod.setPrecoCompra(p.getPrecoCompra());
            prod.setPrecoPorQuantidade(p.getPrecoPorQuantidade());

            sessao.save(prod);
            tx.commit();

            System.out.println("Produto Cadastrado Com Sucesso!");

            return true;

        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            sessao.close();
        }

    }

    public List getAllProdutos() {

        try {
            
            sessao = HibernateUtil.getSessionFactory().openSession();
            tx = sessao.beginTransaction();

            Criteria cri = sessao.createCriteria(Produto.class);
            List lista = cri.list();

            return lista;
            
        } catch (Exception e) {
            
            e.printStackTrace();
            return null;
            
        } finally {
            sessao.close();
        }

    }
    
    public void valorTotalEstoque() {
        try {

            sessao = HibernateUtil.getSessionFactory().openSession();
            tx = sessao.beginTransaction();

            Criteria cri = sessao.createCriteria(Produto.class);
            String soma = cri.setProjection(Projections.sum("precoCompra")).toString();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
